home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
3D Game Programming All in One
/
3D Game Programming All in One Disc.iso
/
3D2E
/
RESOURCES
/
KOOB
/
common
/
client
/
recordings.cs
< prev
next >
Wrap
Text File
|
2005-11-23
|
3KB
|
112 lines
//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// RecordingsGui is the main TSControl through which the a demo game recording
// is viewed.
//-----------------------------------------------------------------------------
function recordingsDlg::onWake()
{
RecordingsDlgList.clear();
%i = 0;
%filespec = $currentMod @ "/recordings/*.rec";
echo(%filespec);
for(%file = findFirstFile(%filespec); %file !$= ""; %file = findNextFile(%filespec))
{
%fileName = fileBase(%file);
if (strStr(%file, "/CVS/") == -1)
{
RecordingsDlgList.addRow(%i++, %fileName);
}
}
RecordingsDlgList.sort(0);
RecordingsDlgList.setSelectedRow(0);
RecordingsDlgList.scrollVisible(0);
}
function StartSelectedDemo()
{
// first unit is filename
%sel = RecordingsDlgList.getSelectedId();
%rowText = RecordingsDlgList.getRowTextById(%sel);
%file = $currentMod @ "/recordings/" @ getField(%rowText, 0) @ ".rec";
new GameConnection(ServerConnection);
RootGroup.add(ServerConnection);
if(ServerConnection.playDemo(%file))
{
Canvas.setContent(PlayGui);
Canvas.popDialog(RecordingsDlg);
ServerConnection.prepDemoPlayback();
}
else
{
MessageBoxOK("Playback Failed", "Demo playback failed for file '" @ %file @ "'.");
if (isObject(ServerConnection)) {
ServerConnection.delete();
}
}
}
function startDemoRecord()
{
// make sure that current recording stream is stopped
ServerConnection.stopRecording();
// make sure we aren't playing a demo
if(ServerConnection.isDemoPlaying())
return;
for(%i = 0; %i < 1000; %i++)
{
%num = %i;
if(%num < 10)
%num = "0" @ %num;
if(%num < 100)
%num = "0" @ %num;
%file = $currentMod @ "/recordings/demo" @ %num @ ".rec";
if(!isfile(%file))
break;
}
if(%i == 1000)
return;
$DemoFileName = %file;
ChatHud.AddLine( "\c4Recording to file [\c2" @ $DemoFileName @ "\cr].");
ServerConnection.prepDemoRecord();
ServerConnection.startRecording($DemoFileName);
// make sure start worked
if(!ServerConnection.isDemoRecording())
{
deleteFile($DemoFileName);
ChatHud.AddLine( "\c3 *** Failed to record to file [\c2" @ $DemoFileName @ "\cr].");
$DemoFileName = "";
}
}
function stopDemoRecord()
{
// make sure we are recording
if(ServerConnection.isDemoRecording())
{
ChatHud.AddLine( "\c4Recording file [\c2" @ $DemoFileName @ "\cr] finished.");
ServerConnection.stopRecording();
}
}
function demoPlaybackComplete()
{
disconnect();
Canvas.setContent("MainMenuGui");
Canvas.pushDialog(RecordingsDlg);
}